//
//  StatusViewModel.swift
//  MQLWeibo
//
//  Created by MQL-IT on 2017/3/25.
//  Copyright © 2017年 MQL-IT. All rights reserved.
//

import Foundation

/// 单条微博的视图模型

/**
 如果没有任何父类,如果希望在开发时输出调试信息,需要
 1. 遵守CustomStringConvertible协议
 2. 重写计算型属性description,并实现
 
 
 关于表格的性能优化:
 - 尽量少计算,所有需要的素材提前准备好
 - 控件上不要设置圆角半径,所有图像渲染的属性都要注意
 - 不要动态创建控件,所有需要的控件都要提前创建好,在显示的时候根据数据隐藏或显示
 - cell中控件的层次越少越好,数量越少越好!
 - 要测量 不要猜测
 */
class StatusViewModel: CustomStringConvertible {
    /// 微博模型
    var status: WBStatus
    
    /// 会员图标,会员等级 0-6, 存储属性(用内存 换cpu)
    var memberIcon: UIImage?
    /// 认证类型, -1:没有认证;2,3,5:企业认证; 220:达人
    var vipIcon: UIImage?
    
    /// 构造函数
    ///
    /// - Parameter model: 微博模型
    /// - Return : 微博的视图模型
    init(model: WBStatus) {
        self.status = model
        // 会员图标
        if (model.user?.mbrank ?? 1) > 0 && (model.user?.mbrank ?? 1) < 7 {
            let imageName = "common_icon_membership_level\(model.user?.mbrank ?? 1)"
            memberIcon = UIImage(named: imageName)
        } else {
            memberIcon = UIImage(named: "common_icon_membership_expired")
        }
        
        //认证图标
        switch model.user?.verified_type ?? -1 {
        case 0:
            vipIcon = UIImage(named: "avatar_vip")
        case 2, 3, 5:
            vipIcon = UIImage(named: "avatar_enterprise_vip")
        case 220:
            vipIcon = UIImage(named: "avatar_grassroot")
        default:
            vipIcon = UIImage(named: "avatar_vgirl")
        }
        
    }
    
    
    var description: String {
        return status.description
    }
}
